package com.neusoft.software20251023.software.controller;


import com.neusoft.software20251023.software.entity.User;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("api/web")
public class LoginController {
    private static final Map<String, User> userStorage =new HashMap<>();
    @PostMapping("/register")
    public String register(@RequestBody User user) {
        // 1. 校验用户名是否已存在
        if (userStorage.containsKey(user.getUsername())) {
            return "注册失败：用户名 '" + user.getUsername() + "' 已被占用";
        }
        // 2. 保存用户到模拟数据库
        userStorage.put(user.getUsername(), user);
        return "注册成功：用户名 '" + user.getUsername() + "' 已创建";
    }

    @PostMapping("/login")
    public String login(
            @RequestParam String username,  // 从URL参数获取用户名
            @RequestParam String password   // 从URL参数获取密码
    ) {
        // 1. 校验用户是否存在
        User user = userStorage.get(username);
        if (user == null) {
            return "登录失败：用户 '" + username + "' 不存在";
        }
        // 2. 校验密码是否正确
        if (user.getPassword().equals(password)) {
            return "登录成功：欢迎回来，" + username + "！";
        } else {
            return "登录失败：密码错误";
        }
    }

    @GetMapping("/user/{username}")
    public User getUserInfo(@PathVariable String username) {
        // 从模拟数据库中查询用户，不存在则返回null（JSON会转为{}）
        return userStorage.get(username);
    }

    @PostMapping("/logout")
    public String logout(@RequestParam String username) {
        // 实际项目中会清理会话，这里仅返回提示
        return "退出成功：用户 '" + username + "' 已下线";
    }
}
